[Cocos2D] 在文字旁加上黑邊 CCLabelTTF and CCSprite

 static CCRenderTexture* createStroke(CCSprite* label, int size, ccColor3B color, GLubyte opacity)
 {

   CCRenderTexture* rt = CCRenderTexture::create(label->getTexture()->getContentSize().width + size * 2,
       label->getTexture()->getContentSize().height+size * 2);
   CCPoint originalPos = label->getPosition();

   ccColor3B originalColor = label->getColor();

   GLubyte originalOpacity = label->getOpacity();

   label->setColor(color);

   label->setOpacity(opacity);

   bool originalVisibility = label->isVisible();

   ccBlendFunc originalBlend = label->getBlendFunc();

   ccBlendFunc bf = {GL_SRC_ALPHA, GL_ONE};

   label->setBlendFunc(bf);

   CCPoint bottomLeft = ccp(
       label->getTexture()->getContentSize().width * label->getAnchorPoint().x + size,
       label->getTexture()->getContentSize().height * label->getAnchorPoint().y + size);

 //原來沒有判斷AnchorPoint的寫法
 //  CCPoint positionOffset= ccp(   - label->getTexture()->getContentSize().width / 2,
 //                                  - label->getTexture()->getContentSize().height / 2);

 //SetAnchorPoint會影響到positionOffset,所以要做判斷
   CCPoint positionOffset = CCPointZero;
   if(label->getAnchorPoint().x == 0.5f){
       positionOffset.x = 0;
   }else if(label->getAnchorPoint().x == 0.0f){
       positionOffset.x =- label->getTexture()->getContentSize().width / 2;
   }else{
       positionOffset.x = label->getTexture()->getContentSize().width/2;
   }
   if(label->getAnchorPoint().y == 0.5f){
       positionOffset.y = 0;
   }else if(label->getAnchorPoint().y == 0.0f){
       positionOffset.y =- label->getTexture()->getContentSize().height / 2;
   }else{
       positionOffset.y =  label->getTexture()->getContentSize().height/2;
   }

   CCPoint position = ccpSub(originalPos, positionOffset);

   rt->begin();

   for (int i=0; i<360 data-blogger-escaped-for="" data-blogger-escaped-i="" data-blogger-escaped-label-="" data-blogger-escaped-needs="" data-blogger-escaped-optimize="" data-blogger-escaped-should="" data-blogger-escaped-that="" data-blogger-escaped-you="" data-blogger-escaped-your="">setPosition(
       ccp(bottomLeft.x + sin(CC_DEGREES_TO_RADIANS(i))*size, bottomLeft.y + cos(CC_DEGREES_TO_RADIANS(i))*size)
       );
       label->visit();
   }
   rt->end();

   label->setPosition(originalPos);
   label->setColor(originalColor);
   label->setBlendFunc(originalBlend);
   label->setVisible(originalVisibility);
   label->setOpacity(originalOpacity);

   rt->setPosition(position);
 //反踞齒
   rt->getSprite()->getTexture()->setAntiAliasTexParameters();

   return rt;
}

Next: [C#] 一次一行讀取文字檔 Prev: [Android] 開啟另一個Activity